//map 的 对象属性说明： 
//route:在url中的hash中显示，单个直接传入字符串，多个则传入字符串数组，'home'等价于['home']
//moduleId:与路由对应的模块id（即模块的路径）
//title：当路由跳转到此的时候的页码名称，（即document.title属性），后面|拼接的部分则是app的名称，e.g. 测试 | Durandal Test
//nav: 表示是否显示此路由，如果是数字，则会进行升序排列显示
//hash：这个值仅仅是用于缩短路由的值，也可以说是设置路由的默认值，如route-demo2/:type(/:id)，此路由如果未设置值，直接访问是有问题的，
//在a标签里面的路由值即为route-demo2/:type(/:id)，则接收模块的activate的参数为"0": ":type(","1": ":id)"，很明显是不正确的
//因此可以通过hash属性来设置默认值,如#route-demo2/default，这样接收的默认参数变为"0": "default","1": null，这样就正确了，
//另外，我发现可以利用hash属性跳转到其他的路由，如hash属性赋值为'#test',则会跳转到test路由，
//甚至不传入hash值也可以，如'http://www.baidu.com',结合官方说法（下面），则可以看出，hash属性如果没有，则router会自动生成一个hahs属性，
//表明，hash属性才是router跳转的属性，所以优先级最高
//官方说法：The hash you see in some cases above is purely used for databinding to an a tag, which you will 
//see shortly. The router attempts to generate a hash for every configured route, if one is not provided.
define(['plugins/router'], function (router) {
    return {
        router: router,
        activate: function () {
            return router.map([
                { route: ['','home'],moduleId: 'app-main/home/index',title: '首页',nav: true },
                { route: 'navs',moduleId: 'app-main/navs/index',title: '导航页',nav: true },
                { route: 'test',moduleId: 'app-main/test/index',title: '测试',nav: true },
                { route: 'tests*details',moduleId: 'app-main/tests/shell',title: '测试列表',nav: true },//'tests/:id*details' dynamicHash
                { route: 'route-demo1',moduleId: 'app-main/routes/index',title: 'route-demo1',nav: true },
                { route: 'route-demo2/:type(/:id)',moduleId: 'app-main/routes/index',hash:'#route-demo2/default',title: 'route-demo2',nav: true },
                { route: 'route-demo3*details',moduleId: 'app-main/routes/index',hash:'#route-demo3',title: 'route-demo3',nav: true },
                { route: 'doc',moduleId: 'app-main/doc/index',title: '文档库',nav: true },
                { route: 'activator',moduleId: 'app-main/activator/index',title: 'Activator',nav: true },
                { route: 'message',moduleId: 'app-main/message/index',title: 'message',nav: true },
                { route: 'parent-and-children',moduleId: 'app-main/parent-and-children/index',title: 'parent and children',nav: true }
            ]).buildNavigationModel()
              .mapUnknownRoutes('404/index', 'not-found')
              .activate();
        }
    };
});